package com.dstz.bpm.api.model.nodedef;

import com.dstz.bpm.api.constant.NodeType;
import com.dstz.bpm.api.engine.plugin.context.BpmPluginContext;
import com.dstz.bpm.api.engine.plugin.def.BpmDef;
import com.dstz.bpm.api.model.def.BpmProcessDef;
import com.dstz.bpm.api.model.def.NodeProperties;
import com.dstz.bpm.api.model.form.BpmForm;
import java.io.Serializable;
import java.util.List;

public interface BpmNodeDef extends Serializable, BpmDef {
   String getNodeId();

   String getName();

   NodeType getType();

   void setType(NodeType var1);

   List<BpmNodeDef> getIncomeNodes();

   List<BpmNodeDef> getOutcomeNodes();

   List<BpmNodeDef> getOutcomeTaskNodes();

   List<BpmNodeDef> getInnerOutcomeTaskNodes(boolean var1);

   List<BpmPluginContext> getBpmPluginContexts();

   BpmProcessDef getBpmProcessDef();

   String getAttribute(String var1);

   void addIncomeNode(BpmNodeDef var1);

   void addOutcomeNode(BpmNodeDef var1);

   BpmNodeDef getParentBpmNodeDef();

   String getRealPath();

   BpmProcessDef getRootProcessDef();

   BpmForm getForm();

   BpmForm getMobileForm();

   <T> T getPluginContext(Class<T> var1);

   NodeProperties getNodeProperties();

   List<Button> getButtons();
}
